#ifndef RESOURCESMAANAGER_H_
#define RESOURCESMAANAGER_H_

#include "Header.h"
#include "ShaderEffect.h"
#include "ImageDecoder.h"
#include "TGAImageDecoder.h"
#include "PNGImageDecoder.h"
#include "Model3D.h"
#include "GraphicsManager.h"

class ResourcesManager
{
private:
	ShaderEffect* shaders;

	unsigned int shadersCount;
	unsigned int modelCounts;
	unsigned int textureCounts;
	ImageDecoder *decoders[2];
	Model3D *models;
	Texture2D *texture2D;

	static ResourcesManager *resourcesManager;

public:
	ResourcesManager();
	virtual ~ResourcesManager();

	static ResourcesManager* GetResourcesManager();

	virtual void LoadDataPkg(const char *filename);
	virtual void LoadShaderPkg(const char* filename);

	virtual ShaderEffect* GetShader(const unsigned int index);
	virtual Model3D* GetModel(const unsigned int modelId);
	virtual Texture2D* GetTexture(const unsigned int textureId);
};

#endif
